home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 40
/
Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso
/
Aminet
/
misc
/
emu
/
ATUtilities.lha
/
ATUtilities
/
BASIC
/
ASAVE.BAS
< prev
next >
Wrap
BASIC Source File
|
2000-09-26
|
3KB
|
132 lines
$INCLUDE "REGNAMES.INC"
COLOR 14
IF CheckVector(&H49)=0 THEN
SOUND 2000,2
PRINT "FEHLER: ATUtilities File Transfer ist nicht installiert!"
GOTO ende
END IF
GOSUB CmdAuswertung
REG %AX,(&H6*256)
CALL INTERRUPT &H49
segment=REG(%ES)
offset=REG(%DI)
DEF SEG = segment
a2$=a2$+CHR$(0)
FOR i=1 TO LEN(a2$)
POKE offset+i-1,ASC(MID$(a2$,i,1))
NEXT
REG %BX,2
REG %AX,0
CALL INTERRUPT &H49
fh=REG(%CX)
IF REG(%BX)=10000 THEN
a1$=a1$+CHR$(0)
FOR i=1 TO LEN(a1$)
POKE offset+i-1,ASC(MID$(a1$,i,1))
NEXT
REG %AX,(&H3D*256)
REG %DS,segment
REG %DX,offset
CALL INTERRUPT &H21
pc=REG(%AX)
IF (REG(%FLAGS) MOD 2)=0 THEN
t1=TIMER
REG %AX,(&H3F*256)
REG %BX,pc
REG %CX,16384
REG %DS,segment
REG %DX,offset
CALL INTERRUPT &H21
bytes=REG(%AX)
IF (REG(%FLAGS) MOD 2)=1 THEN bytes=0
p&=bytes
PRINT "Bytes bertragen:";bytes;
WHILE bytes>0
REG %AX,(&H3*256)
REG %CX,bytes
REG %BX,fh
CALL INTERRUPT &H49
g=REG(%BX)
IF g<>bytes THEN
SOUND 2000,2
PRINT "FEHLER: Fehler beim Schreiben der Amiga-Datei."
bytes=0
ELSE
REG %AX,(&H3F*256)
REG %BX,pc
REG %CX,16384
REG %DS,segment
REG %DX,offset
CALL INTERRUPT &H21
bytes=REG(%AX)
IF (REG(%FLAGS) MOD 2)=1 THEN bytes=0
LOCATE ,1
p&=p&+bytes
PRINT "Bytes bertragen:";p&;
END IF
WEND
t2=TIMER-t1
LOCATE ,1
PRINT p&;"Bytes wurden in";t2;"Sekunden bertragen."
REG %BX,pc
REG %AX,(&H3E*256)
CALL INTERRUPT &H21
ELSE
PRINT "FEHLER: PC-Datei "+a1$+"lát sich nicht ffnen."
END IF
REG %BX,fh
REG %AX,(&H1*256)
CALL INTERRUPT &H49
ELSE
SOUND 2000,2
PRINT "FEHLER: Amiga-Datei "+a2$+"lát sich nicht erstellen."
END IF
ende:
COLOR 7
END
CmdAuswertung:
cmd$=COMMAND$+CHR$(0)
cmdlen=LEN(COMMAND$)
IF cmdlen>0 THEN
n=INSTR(cmd$," ")
IF n=0 THEN GOTO argf
a1$=LEFT$(cmd$,n-1)
n2=instr(n+1,cmd$,CHR$(0))
IF n2=0 THEN GOTO argf
a2$=MID$(cmd$,n+1,cmdlen-n)
ELSE
GOTO argf
END IF
RETURN
argf:
SOUND 2000,2
PRINT "ASave - Version 1.0 Copyright (C) 1993 by Thomas Dreibholz"
PRINT ""
PRINT "ASave bertrgt Dateien vom der AT-Karte zum Amiga. Bei Textdateien findet"
PRINT "jedoch keine Umwandlung von Zeichen statt! Sind diese Umwandlungen"
PRINT "erforderlich, so sollte AWrite verwendet werden."
PRINT ""
PRINT "Aufruf: ASave [PC-Datei] [Amiga-Datei]"
PRINT ""
GOTO ende
FUNCTION CheckVector(num) STATIC
REG %AX,(&H35*256)+num
CALL INTERRUPT &H21
segm=REG(%ES)
offs=REG(%BX)
DEF SEG = segm
IF (segm=0) OR (PEEK(offs)=207) THEN
CheckVector=0
ELSE
CheckVector=1
END IF
END FUNCTION